package com.briup.day02;

/**
 * 字符类 2个字节 16位 0-65535
 *
 */
public class Test10 {
    public static void main(String[] args) {
        //表示字符A -->内存 字节信息--->16位表示 010101
        char c = 'A';
        //编码方式：A -----编(机器)码---->0101001
        /*
            ASCII ： 美国码
            A--->  65

            java 使用Unicode字符集（万国码）（映射关系）
            UTF-8编码格式 Unicode 实现
            GBK编码格式
         */
        char c2 = 65; //A对于的10进制数65
        System.out.println(c == c2);
        char c3 = 0b0100_0001;//A
        System.out.println(c2 == c3);
        char c4 = 0101;
        char c5 = 0x41;
        //使用unicode码表值表示字母A
        char c6 = '\u0041';  //A
        System.out.println(c6);
        System.out.println(c2);
        //unicode码值表示汉字呢？
        char a1 = '中';
        char a2 = '\u4E2D';
        char a3 = 20013;
        System.out.println(a1 == a2);
        System.out.println(a2);
        System.out.println(a3);
        //考题：
        char b = '0'; //存储内存中-->编码--》 0000 0000 0011 0000
        char b2 = 0;  //  0000 0000  0000 0000
        char b3 = '\u0000'; // 0000 0000 0000 0000
        char b4 = ' '; //空格 10进制 32
        // b == b2 ?   b == b3   b2 == b3 ?     b4??
        System.out.println(b == b2);//false
        System.out.println(b3 == b2);//true
        char b5 = '\u0020'; //表示SP字符  空格
        System.out.println(b4 == b5);
        //转义字符 ： 字符串中使用转义字符
        System.out.println("ab\tcd");//制表符 类似空格
        System.out.println("ab\ncd");//换行
        System.out.println("123456\rcd");//移动光标到行首
        //转义将 “ 表示字符串开始和结束 ，只表示双引号
        System.out.println("\"hello\" "); //输出 字符串  "hello"
        System.out.println("'hello'"); // 'hello'
        char d = '\'';//表示键盘输入的单引号
        System.out.println(d);
        System.out.println('\\');//输出 反斜杠
        System.out.println("\\");
    }
}
